Any non-trivial design and development projects require the enactment of an intensely collaborative process, which makes such design and development an eminent socio-technical activity. For that reason, understanding and measuring how people are organized and interact with each other when they work on design and development projects and perform worker-intensive design activities is an important step in improving productivity of the design or development processes. Applicable projects may include but are not limited to software design and development project, hardware or system design and development projects.
In M. E. Conway, “How Do Committees invent?” Datamation, 14(4):28-31, April 1968, it has been observed that some form of correlation exists between the structure of a product and the layout of the organization that produces that product (Conway's Law).
D. L. Parnas, “On the Criteria to be Used in Decomposing Systems into Modules”, Communications of the ACM, 15(12):1053-1058, December 1972, observed that in a software project the subdivision of development responsibility tends to influence and induce the modularization of the software product at least as strongly as functional decomposition.
Recently, a number of researchers have tried to investigate upon the aforementioned observations. The state of the art includes some works that employ techniques borrowed from Social Network Analysis (SNA) to plot visualizations and quantitatively measure properties of a network depicting the inter-personal interactions within an organization involved in the design and development of a software product. However the properties of such a network of inter-personal interactions seem insufficient to capture and explain the complex phenomena occurring in a software project, unless they are situated with respect to the technical work being done. For that reason a few other works couple SNA with general graph analysis capabilities, which are applied to a given representation of the software. For example, various works describe the networks obtained by carrying out inter-artifact relationships that can be obtained by performing static analysis of program code artifacts: see for example Cleidson de Souza et al., “From Technical Dependencies to Social Dependencies”, 2004. Orlena Gotel et al., “Contribution Structures”, 1995, instead, focus on the dependencies between requirement specification artifacts. Some others focus on the relationships between technical tasks carried out by people in the context of the software design and development process: see for example Marcelo Cataldo et al. “Identification of Coordination Requirements: Implications for the Design of Collaboration and Awareness Tools”, Computer Supported cooperative Work '06, Nov. 4-8, 2006.
The existing works, however, take into account only one particular aspect of the multi-faced software design and development process, in connection with the organization undertaking it. Therefore, an improved methodology and a generic framework to aid the understanding of design and development is desirable. It would be also desirable that said methodology and framework take into consideration multiple relationships among a variety of diverse objects and entities involved in such design and development process.